<template>
	<div>
		<el-form :inline="true" :model="formInline" class="user-search">
			<el-form-item label=""><el-input size="small" v-model="formInline.zhanghao" placeholder="输入账号"v-if="userInfo.roles[0] == 'guanliyuan'"></el-input></el-form-item>
			<el-form-item label=""><el-input size="small" v-model="formInline.mingzi" placeholder="输入名字"v-if="userInfo.roles[0] == 'guanliyuan'"></el-input></el-form-item>

			<el-form-item>
				<el-button size="small" type="warning" icon="el-icon-search" @click="search"v-if="userInfo.roles[0] == 'guanliyuan'">搜索</el-button>
				<el-button size="small" type="primary" icon="el-icon-plus" @click="handleEdit()" v-if="userInfo.roles[0] == 'suguan'">添加</el-button>
				<el-button size="small" type="success" icon="el-icon-s-data" @click="daochu()" v-if="userInfo.roles[0] == 'guanliyuan'">导出</el-button>
				<el-button size="small" type="danger" icon="el-icon-delete" @click="handleDeleteList()" v-if="userInfo.roles[0] == 'guanliyuan'">批量删除</el-button>

			</el-form-item>
			<el-form-item>
				<el-upload class="upload-demo" style="float: left; padding-right: 10px;" action='http://localhost:9999/dakajilu/upload' :headers='headers' :show-file-list='false' :on-success='handleDaoruSuccess' :before-upload='beforeDaoruUpload' ><el-button size="small" type="info" icon="el-icon-sell" @click="daoru()" v-if="userInfo.roles[0] == 'guanliyuan'">导入</el-button></el-upload>
			</el-form-item>
		</el-form>

		<el-table size="small" :data="listData" highlight-current-row v-loading="loading" border element-loading-text="拼命加载中" @selection-change="handleSelectionChange">
			<el-table-column align="center" type="selection" width="60"></el-table-column>
			<el-table-column sortable prop="zhanghao" label="账号"></el-table-column>
			<el-table-column sortable prop="mingzi" label="名字"></el-table-column>
			<el-table-column sortable prop="suojiaokecheng" label="所教课程"></el-table-column>
      <el-table-column sortable prop="addtime" label="上班时间" width="160">
        <template slot-scope="scope">
          <div>{{scope.row.addtime|datePipe('yyyy-MM-dd hh:mm:ss')}}</div>
        </template>
      </el-table-column>
<!--			<el-table-column sortable prop="shangbanshijian" label="上班时间"></el-table-column>-->
<!--			<el-table-column sortable prop="xiabanshijian" label="下班时间"></el-table-column>-->
			<el-table-column sortable prop="kaoqinzhuangtai" label="考勤状态"></el-table-column>

<!--			<el-table-column sortable prop="addtime" label="添加时间" width="160">-->
<!--				<template slot-scope="scope">-->
<!--					<div>{{scope.row.addtime|datePipe('yyyy-MM-dd hh:mm:ss')}}</div>-->
<!--				</template>-->
<!--			</el-table-column>-->

			<el-table-column align="center" label="操作" min-width="160">
				<template slot-scope="scope">

					<el-button size="mini" type="success" @click="handleEditlb(scope.$index, scope.row)" v-if="userInfo.roles[0] == 'guanliyuan'">处理</el-button>
					<el-button size="mini" type="success" @click="handleEdit(scope.$index, scope.row)" v-if="userInfo.roles[0] == 'guanliyuan' ">编辑</el-button>
					<el-button size="mini" type="danger" @click="deleteDakajilu(scope.$index, scope.row)" v-if="userInfo.roles[0] == 'guanliyuan' ">删除</el-button>
					<el-button size='mini' type='primary' @click="handleDetail(scope.$index, scope.row)">详细</el-button>
					<!--zhixfuanniu-->

				</template>
			</el-table-column>
		</el-table>
		<Pagination v-bind:child-msg="pageparm" @callFather="callFather"></Pagination>

		<el-dialog :title="title" :visible.sync="editFormVisible" width="30%" @click="closeDialog">
			<el-form label-width="120px" :model="editForm" :rules="rules" ref="editForm">
				<el-form-item  label="账号" prop="zhanghao"><el-input size="small" v-model="editForm.zhanghao" auto-complete="off" placeholder="请输入账号" style='width:50%' disabled></el-input></el-form-item>
		<el-form-item  label="名字" prop="mingzi"><el-input size="small" v-model="editForm.mingzi" auto-complete="off" placeholder="请输入名字" style='width:50%'></el-input></el-form-item>
		<el-form-item  label="所教课程" prop="suojiaokecheng"><el-input size="small" v-model="editForm.suojiaokecheng" auto-complete="off" placeholder="请输入所教课程" style='width:50%'></el-input></el-form-item>
		<el-form-item  label="上班时间" prop="addtime"><el-date-picker type="datetime" value-format="yyyy-MM-dd hh:mm:ss" size="small" v-model="editForm.addtime" style='width:50%'/></el-form-item>
<!--		<el-form-item style='display:none' label="下班时间" prop="xiabanshijian"><el-date-picker type="datetime" value-format="yyyy-MM-dd hh:mm:ss" size="small" v-model="editForm.xiabanshijian" style='width:50%'/></el-form-item>-->
		<el-form-item  label='考勤状态' prop="kaoqinzhuangtai"v-if="userInfo.roles[0] == 'guanliyuan'"><el-select size="small" v-model="editForm.kaoqinzhuangtai" placeholder="请选择考勤状态"><el-option selected label="请选择考勤状态" value=""></el-option><el-option label="正常" value="正常"></el-option><el-option label="异常" value="异常"></el-option></el-select></el-form-item>


			</el-form>
			<div slot="footer" class="dialog-footer">
				<el-button size="small" @click="closeDialog">取消</el-button>
				<el-button size="small" type="primary" :loading="loading" class="title" @click="submitForm('editForm')">保存</el-button>
			</div>
		</el-dialog>

			<el-dialog :title="titlelb" :visible.sync="editFormVisiblelb" width="30%" @click="closeDialoglb">
			<el-form label-width="120px" :model="editForm" :rules="rules" ref="editForm">
				<el-form-item style='display:none' label="账号" prop="zhanghao"><el-input size="small" v-model="editForm.zhanghao" auto-complete="off" placeholder="请输入账号" style='width:50%' disabled></el-input></el-form-item>
		<el-form-item style='display:none' label="名字" prop="mingzi"><el-input size="small" v-model="editForm.mingzi" auto-complete="off" placeholder="请输入名字" style='width:50%'></el-input></el-form-item>
		<el-form-item style='display:none' label="所教课程" prop="suojiaokecheng"><el-input size="small" v-model="editForm.suojiaokecheng" auto-complete="off" placeholder="请输入所教课程" style='width:50%'></el-input></el-form-item>
		<el-form-item style='display:none' label="上班时间" prop="addtime"><el-date-picker type="datetime" value-format="yyyy-MM-dd hh:mm:ss" size="small" v-model="editForm.addtime" style='width:50%'/></el-form-item>
<!--		<el-form-item  label="下班时间" prop="xiabanshijian"><el-date-picker type="datetime" value-format="yyyy-MM-dd hh:mm:ss" size="small" v-model="editForm.xiabanshijian" style='width:50%'/></el-form-item>-->
		<el-form-item style='display:none' label='考勤状态' prop="kaoqinzhuangtai"><el-select size="small" v-model="editForm.kaoqinzhuangtai" placeholder="请选择考勤状态"><el-option selected label="请选择考勤状态" value=""></el-option><el-option label="正常" value="正常"></el-option><el-option label="异常" value="异常"></el-option></el-select></el-form-item>


			</el-form>
			<div slot="footer" class="dialog-footer">
				<el-button size="small" @click="closeDialoglb">取消</el-button>
				<el-button size="small" type="primary" :loading="loading" class="title" @click="submitForm('editForm')">保存</el-button>
			</div>
		</el-dialog>
			<el-dialog :title="title" :visible.sync="detailFormVisible" width="60%" @click="closeDialogdetail">
			<table width="100%" border="0"  align="center" cellpadding="3" cellspacing="1" class="table table-striped table-bordered table-hover">
								<tr>
									<td width='11%' height='40px'>账号：</td><td width='39%'>{{editForm.zhanghao}}</td>
     <td width='11%' height='40px'>名字：</td><td width='39%'>{{editForm.mingzi}}</td></tr><tr>
     <td width='11%' height='40px'>所教课程：</td><td width='39%'>{{editForm.suojiaokecheng}}</td>
     <td width='11%' height='40px'>上班时间：</td><td width='39%'>{{editForm.addtime}}</td></tr><tr>
<!--     <td width='11%' height='40px'>下班时间：</td><td width='39%'>{{editForm.xiabanshijian}}</td>-->
     <td width='11%' height='40px'>考勤状态：</td><td width='39%'>{{editForm.kaoqinzhuangtai}}</td>
     </tr>
							</table>



			<div slot="footer" class="dialog-footer">
				<el-button size="small" @click="closeDialogdetail">关闭</el-button>

			</div>
		</el-dialog>
			<!--zhixfudhk-->
	</div>
</template>

<script>
import Pagination from "@/layout/pagination/Pagination";
import { dakajiluList, dakajiluSave, dakajiluDelete,dakajiluEdit,dakajiluDeleteList } from '@/api/dakajilu/dakajiluApi';


import {Session} from "@/utils/storage";
import axios from 'axios';
export default {
	name: 'user',
	data() {
		return {
			loading: false, //是显示加载
			title: '',
			titlelb:'',
			editFormVisible: false, //控制编辑页面显示与隐藏
			payVisible: false,
			tempdingdanxinxi: '',
			id: '',
			radio: '',
			detailFormVisible: false,
			editFormVisiblelb:false,


			editForm: {
			},
			user:[],
			username:'',
			cx:'',

			rules: {

			},

			formInline: {
				page: 1,
				limit: 10,
			},


			listData: [],
			dakajilus:[],

			checkmenu: [],
			pageparm: {
				currentPage: 1,
				pageSize: 10,
				total: 0
			}
		};
	},
	computed:{
		headers(){
			return {"token":Session.get("token")}
		}
	},
	watch: {
			'$route' (to, from) {
				// 路由发生变化页面刷新
				this.$router.go(0);
			}
		},
	components: {
		Pagination
	},
	created() {

		if (!Session.get('userInfo')) return false;
		this.userInfo = Session.get('userInfo');
		this.username=localStorage.getItem("username");
		this.cx=localStorage.getItem("cx");
		if(this.userInfo.roles[0] == 'suguan'){this.formInline.zhanghao= this.username;}

		this.getdata(this.formInline)

	},
	methods: {

		//zxhifuff
		handleShenheList(){
				const dakajilus = this.dakajilus;
				if(dakajilus.length == 0){
					this.$message({
						type: 'error',
						message: '请至少选择一项'
					})
				}else {
					this.$confirm('确定要批量审核吗?', '信息', {
						confirmButtonText: '确定',
						cancelButtonText: '取消',
						type: 'warning'
					}).then(() => {
						dakajilus.forEach(item=> {
							let data = {...item, issh: 1}
							dakajiluEdit(data).then(res => {})
						})
						this.getdata(this.formInline)
						this.$message({
							type: 'success',
							message: '批量审核成功！'
						})
					}).catch(() => {
						this.$message({
							type: 'info',
							message: '已取消批量审核'
						})
					})
				}
			},
		getdata(parameter) {
			dakajiluList(parameter)
					.then(res => {
						this.loading = false
						if (res.success == false) {
							this.$message({
								type: 'info',
								message: res.msg
							})
						} else {
							this.listData = res.data.list



							// 分页赋值
							this.pageparm.currentPage = this.formInline.current
							this.pageparm.pageSize = this.formInline.currentNum
							this.pageparm.total = res.data.total
						}
					})
					.catch(err => {
						this.loading = false
						this.$message.error('菜单加载失败，请稍后再试！')
					})
		},

		// 分页插件事件
		callFather(parm) {
			this.formInline.current = parm.currentPage
			this.getdata(this.formInline)
		},

		// 搜索事件
		search() {
			this.getdata(this.formInline)
		},
		//显示编辑界面
		handleEdit: function (index, row) {
			this.editFormVisible = true
			if (row != undefined && row != 'undefined') {
				this.title = '修改老师打卡记录'
				this.editForm = row
			} else {
				this.title = '添加老师打卡记录'
				this.editForm = {}
				this.editForm.zhanghao= this.username;
				this.editForm.mingzi= this.userInfo.mingzi;
				// this.editForm.suojiaokecheng= this.userInfo.suojiaokecheng;

				//zixdonxgbianxhao1
			}
		},
		daochu(){
			axios.get('/dakajilu/getExcel', {
				responseType: 'blob',
				headers: { token: Session.get("token"), 'Content-Type': 'application/x-download' }
			}).then((res) => {
				if (res.status === 200) {
					var a = document.createElement('a')
					var blob = new Blob([res.data], { type: 'application/vnd.ms-excel' })
					var href = window.URL.createObjectURL(blob)
					a.href = href
					a.download = '老师打卡记录.xlsx'
					document.body.appendChild(a)
					a.click()
					document.body.removeChild(a)
					window.URL.revokeObjectURL(href)
				}
			}).catch((err) => {
				console.log(err)
			})
		},
		handleDaoruSuccess(res, file) {
				if(res.code == "0") {
					this.$message({
						type: 'success',
						message: '导入成功!'
					})
					this.getdata(this.formInline);
				}
			},
		beforeDaoruUpload(file) {
			const isJPG = file.type === 'application/vnd.ms-excel';
			if (!isJPG) {
				this.$message.error('上传只能是 excel 格式!');
			}
			return isJPG;
		},
		//zixdonxgbianxhao2

		handleDetail: function (index, row) {
			this.detailFormVisible = true
			if (row != undefined && row != 'undefined') {
				this.title = '老师打卡记录详细'
				this.editForm = row
			}

		},
		closeDialogdetail() {
				this.getdata(this.formInline)
				this.detailFormVisible = false
			},
		handleEditlb: function (index, row) {
			this.editFormVisiblelb = true
			if (row != undefined && row != 'undefined') {
				this.titlelb = '处理老师打卡记录'
				this.editForm = row
			} else {
			}
		},
closeDialoglb() {
				this.getdata(this.formInline)
				this.editFormVisiblelb = false
			},
		// 编辑、增加页面保存方法
		submitForm(editData) {

			this.$refs[editData].validate(valid => {
				if (valid) {
					if(this.editForm.id){
						dakajiluEdit(this.editForm).then(res => {
							this.editFormVisible = false
							this.editFormVisiblelb = false
							this.loading = false
							if (res.code == '0') {
								this.getdata(this.formInline)
								this.$message({
									type: 'success',
									message: '老师打卡记录修改成功！'
								})
							} else {
								this.$message({
									type: 'info',
									message: res.msg
								})
							}
						}).catch(err => {
							this.editFormVisible = false
							this.loading = false
							this.getdata(this.formInline)
						if(err){
								this.$message.error(err)
							}else {
								this.$message.error('操作失败，请稍后再试！')
							}
						})
					}else {
						dakajiluSave(this.editForm).then(res => {
							this.editFormVisible = false
							this.loading = false
							if (res.code == '0') {

								this.getdata(this.formInline)
								this.$message({
									type: 'success',
									message: '老师打卡记录添加成功！'
								})
							} else {
								this.$message({
									type: 'info',
									message: res.msg
								})
							}
						}).catch(err => {
							this.editFormVisible = false
							this.loading = false
						if(err){
								this.$message.error(err)
							}else {
								this.$message.error('操作失败，请稍后再试！')
							}
						})
					}
				} else {
					return false
				}
			})
		},
		// 删除公司
		deleteDakajilu(index, row) {
			this.$confirm('确定要删除吗?', '信息', {
				confirmButtonText: '确定',
				cancelButtonText: '取消',
				type: 'warning'
			}).then(() => {
				dakajiluDelete(row.id).then(res => {
					if (res.code == '0') {
						this.$message({
								type: 'success',
							message: '老师打卡记录已删除!'
						})
						this.getdata(this.formInline)
					} else {
						this.$message({
							type: 'info',
							message: res.msg
						})
					}
				}).catch(err => {
					this.loading = false
					this.$message.error('操作失败，请稍后再试')
				})
			}).catch(() => {
				this.$message({
					type: 'info',
					message: '已取消删除'
				})
			})
		},
		handleSelectionChange(val){
			this.dakajilus = val;
		},
		handleDeleteList(){
			const dakajilus = this.dakajilus;
			if(dakajilus.length == 0){
				this.$message({
					type: 'error',
					message: '请至少选择一项进行删除'
				})
			}else {
				this.$confirm('确定要批量删除吗?', '信息', {
					confirmButtonText: '确定',
					cancelButtonText: '取消',
					type: 'warning'
				}).then(() => {
					dakajiluDeleteList(dakajilus).then(res => {
						if (res.code == '0') {
							this.$message({
								type: 'success',
								message: '批量删除成功!'
							})
							this.getdata(this.formInline)
						} else {
							this.$message({
								type: 'info',
								message: res.msg
							})
						}
					}).catch(err => {
						this.loading = false
						this.$message.error('操作失败，请稍后再试')
					})
				}).catch(() => {
					this.$message({
						type: 'info',
						message: '已取消删除'
					})
				})
			}
		},
		//xuaxnzeshxifou




		//youscwexnjiaxn
		// 关闭编辑、增加弹出框
		closeDialog() {
			this.getdata(this.formInline)
			this.editFormVisible = false
		}
	},
};
</script>

<style scoped lang="scss">
	@import './index.scss';
</style>
